iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
Kubernetes

Kubernetes 中關於網路的二三事系列 第 24

Day24 淺談 Kubernetes Auto Scaling - Horizontal Pod Autoscaler

  • 分享至 

  • xImage
  •  

Horizontal Pod Autoscaler是Kubernetes中重要的功能,可以根據應用的需求自動調整Pod的數量,確保應用在負載高的時候能獲得足夠的資源,而在負載低的情況則能夠節省資源。本篇文章將介紹Horizontal Pod Autoscaler的工作原理與配置方法,那就讓我們開始吧!

工作原理

Horizontal Pod Autoscaler透過Metrics Server來收集Pod的相關數據,使用者可以去指定HPA中的目標參數,例如設置CPU使用率讓HPA定期去檢查指標數據使Pod的平均CPU使用率保持在某個值附近,如果指標超過了目標值,HPA會去減少Pod的數量,反之,如果指標低於目標值,則會去增加Pod的數量。這樣的調整確保在負載高的情況下,應用能夠獲得足夠的資源,而在負載低時則能夠節省資源。

配置Horizontal Pod Autoscaler

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa
spec:  
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization  
        averageUtilization: 60

參數解釋

  • scaleTargetRef : 指定要擴展的目標(例如:Deployment)
  • minReplicas : Pod的最小副本數量
  • maxReplicas : Pod的最大副本數量
  • metrics:定義要監控的指標與目標值。在範例中,HPA會依據CPU使用率去調整Pod的數量,將保持平均CPU使用率在60%左右

適用場景

  • 負載波動的應用,如某些流量增加的時間區間段
  • 需要根據實際需求去調整資源的微服務

注意事項

  • Metrics Server需要正常運行,否則無法為HPA獲取指標數據
  • 設置合理的最小和最大Pod數量,避免資源浪費或過度擴展
  • HPA調整是基於指標的平均值,可能會因延遲造成短暫的性能下降

Horizontal Pod Autoscaler是Kubernetes中重要的功能,根據實時的指標調整Pod的數量,有效地監控和管理資源,HPA能夠確保應用在高負載時保持穩定性,也能在低負載時節省資源,從而提升運行效率。隨著微服務架構的流行,HPA將在資源管理中發揮越來越重要的作用。


上一篇
Day23 淺談Service Mesh - Istio
下一篇
Day25 淺談Kubernetes RBAC
系列文
Kubernetes 中關於網路的二三事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言